package a

object live {
  class Gasto(val categoria: String, val valor: BigDecimal) {
    override def toString() = categoria + ": $" + valor
  }

  val gastos = List(new Gasto("lazer", 1.2), new Gasto("educaçao", 3.4), new Gasto("lazer", 5.6))
  
  def mapearPorCategoria(gastos: List[Gasto]) = {
    gastos groupBy (_.categoria) map {
      case (chave, lista) => (chave, (lista map (_.valor) sum))
    }
  }
}